home *** CD-ROM | disk | FTP | other *** search
Text File | 1986-01-23 | 2.1 KB | 62 lines | [TEXT/MACA] |
- ( Sine - sin table )
-
-
- :CLASS TrigTable <Super wArray
-
- 4 bArray Signs \ 1 if negative in quadrant
- 4 Array AxisVals \ 90 degree values
-
- \ ( deg -- sin ) Lookup a sin * 10000 of an angle
- :M SIN: { degree -- sin }
- degree 90 /Mod 3 And swap -> degree
- degree 0=
- IF At: AxisVals ( axes are Boundary cond)
- ELSE dup 1 and ( mirror quadrants 1,3)
- IF 90 degree -
- ELSE degree THEN
- At: Self Swap
- At: Signs IF negate THEN
- THEN ;M
-
- :M COS: 270 + Sin: Self ;M
-
- :M CLASSINIT: 0 0 To: Signs 0 1 To: Signs
- 1 2 To: Signs 1 3 To: Signs
- 0 0 To: AxisVals 10000 1 To: AxisVals
- 0 2 To: AxisVals -10000 3 To: AxisVals ;M
-
- ;CLASS
-
- 90 TrigTable Sines \ system-wide table of sines
-
- \ ( val angle -- ) Fill a Sin table entry
- : 's To: Sines ;
- 00000 00 's 00175 01 's 00349 02 's 00524 03 's 00698 04 's
- 00872 05 's 01045 06 's 01219 07 's 01392 08 's 01571 09 's
- 01736 10 's 01908 11 's 02079 12 's 02250 13 's 02419 14 's
- 02588 15 's 02756 16 's 02924 17 's 03090 18 's 03256 19 's
- 03420 20 's 03584 21 's 03746 22 's 03907 23 's 04067 24 's
- 04226 25 's 04384 26 's 04540 27 's 04695 28 's 04848 29 's
- 05000 30 's 05150 31 's 05299 32 's 05446 33 's 05592 34 's
- 05736 35 's 05878 36 's 06018 37 's 06157 38 's 06293 39 's
- 06428 40 's 06561 41 's 06691 42 's 06820 43 's 06947 44 's
- 07071 45 's 07193 46 's 07314 47 's 07431 48 's 07547 49 's
- 07660 50 's 07771 51 's 07880 52 's 07986 53 's 08090 54 's
- 08192 55 's 08290 56 's 08387 57 's 08480 58 's 08572 59 's
- 08660 60 's 08746 61 's 08829 62 's 08910 63 's 08988 64 's
- 09063 65 's 09135 66 's 09205 67 's 09272 68 's 09336 69 's
- 09397 70 's 09455 71 's 09511 72 's 09563 73 's 09613 74 's
- 09659 75 's 09703 76 's 09744 77 's 09781 78 's 09816 79 's
- 09848 80 's 09877 81 's 09903 82 's 09925 83 's 09945 84 's
- 09962 85 's 09976 86 's 09986 87 's 09994 88 's 09998 89 's
-
- : Sin Sin: Sines ;
- : Cos Cos: Sines ;
-
- :CLASS Angle <Super Int
-
- :M SIN: Get: Self Sin ;M
- :M COS: Get: Self Cos ;M
-
- ;CLASS
-